package Synchronized;

public class 语法 {

    //synchronized语法三：同步静态方法
    public static synchronized void t2(){

    }
    public static void t2_equals(){
        synchronized (语法.class){

        }
    }

    //synchronized语法二：同步实例方法
    public synchronized void t1(){

    }
    public void t1_equals(){
        //当前类的某个实例对象，谁调用我这个实例方法，this就是谁
        synchronized (this){

        }
    }

    //类加载：还会在堆中生成一个类对象
    public static void main(String[] args) {
        Class c = String.class;
        //执行当前类的类加载，在堆中会生成一个语法.class的类对象
        Class<语法> c1 = 语法.class;
        Class<语法> c2 = 语法.class;
        System.out.println(c1==c2);

        //synchronized语法一：同步代码块
        Object someOne = new Object();
        synchronized (someOne) {

        }
        //也可以使用类对象
        synchronized (语法.class){

        }
    }
}
